/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucue.ptc.gco.ws;

import edu.ucue.ptc.gco.mdl.Pedido;
import edu.ucue.ptc.gco.ngc.PedidoManagerLocal;
import edu.ucue.ptc.gco.ngc.UsuarioManagerLocal;
import edu.ucue.ptc.gco.util.AtributoInvalidoException;
import edu.ucue.ptc.gco.util.InsuficienteStockException;
import edu.ucue.ptc.gco.util.PedidoException;
import java.util.List;
import javax.ejb.EJB;
import javax.jws.WebService;
import javax.ejb.Stateless;
import javax.jws.Oneway;
import javax.jws.WebMethod;
import javax.jws.WebParam;

/**
 *
 * @author wilo
 */
@WebService(serviceName = "PedidoWebService")
@Stateless()
public class PedidoWebService {
    @EJB
    private PedidoManagerLocal ejbRef;// Add business logic below. (Right-click in editor and choose
    // "Web Service > Add Operation"

    @WebMethod(operationName = "crearPedido")
    public void crearPedido(@WebParam(name = "pedido") Pedido pedido,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException,InsuficienteStockException, Exception{
       
        ejbRef.crear(pedido,nombreUsuario, contrasenaUsuario);
    }

    @WebMethod(operationName = "actualizarPedido")
    public void actualizarPedido(@WebParam(name = "pedido") Pedido pedido,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException, PedidoException,Exception{
        ejbRef.actualizar(pedido,nombreUsuario, contrasenaUsuario);
    }

    @WebMethod(operationName = "eliminarPedido")
    public void eliminarPedido(@WebParam(name = "pedido") Pedido pedido,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException,Exception{
        ejbRef.eliminar(pedido,nombreUsuario, contrasenaUsuario);
    }

    /*@WebMethod(operationName = "eliminarc")
    @Oneway
    public void eliminarc(@WebParam(name = "idVisita") int idVisita) {
        ejbRef.eliminarc(idVisita);
    }*/

    @WebMethod(operationName = "listarTodosPedidos")
    public List<Pedido> listarTodosPedidos(@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException,Exception{
        return ejbRef.listarTodos(nombreUsuario, contrasenaUsuario);
    }

    @WebMethod(operationName = "obtenerPorIdPedido")
    public Pedido obtenerPorIdPedido(@WebParam(name = "idPedido") int idPedido,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException,Exception{
        Pedido obtenerPorId = ejbRef.obtenerPorId(idPedido,nombreUsuario, contrasenaUsuario);
                return obtenerPorId;
    }
    
}
